package com.hspedu.override_;

/**
 * 方法重写：
 * 1.子类的方法的参数、方法名称，要和父类方法的参数、方法名称完全一样
 * 2.子类方法的返回类型和父类方法返回类型一样，或者是父类返回类型的子类
 *      比如 父类返回类型是Object，子类方法返回类型是String
 *      public Object getInfo(){}    public String getInfo(){}
 * 3.子类方法不能缩小父类方法的访问权限
 *      void sayOk(){}      public void sayOk(){}
 */
public class Dog extends Animal{
    @Override
    public void cry() {
//        super.cry();
        System.out.println("Dog cry");
    }


    //不能去掉public ，访问权限缩小了
    @Override
    public void m1() {
        super.m1();
    }

    //父类的m2()方法是默认修饰符修饰的，子类可以写成public
    @Override
    public void m2(){

    }

    //返回父类m3()方法返回类型（AAA）的子类（BBB）
    @Override
    public BBB m3() {
        return null;
    }
}

class AAA{

}

class BBB extends AAA{

}